package com.atyjh.reggie.service;

import com.atyjh.reggie.dto.Result;
import com.atyjh.reggie.dto.UserDTO;
import com.atyjh.reggie.entity.Employee;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 * @author yjh
 * @since jdk1.8.0_311 2022.06.07
 */
public interface IEmployeeService extends IService<Employee> {
    /**
     * 用户登录
     *
     *
     * @param session 会话
     * @param username 用户名
     * @param password 密码
     * @return 登录的用户信息
     */
    Result<Employee> login(HttpSession session, String username, String password);

    /**
     * 退出登录
     *
     * @param session 会话
     * @return 信息
     */
    Result<UserDTO> logout(HttpSession session);

    /**
     * 添加员工
     *
     * @param request 请求
     * @param employee 待添加的员工信息
     * @return 添加是否成功信息
     */
    Result<String> saveEmployee(HttpServletRequest request, Employee employee);


    /**
     * 分页
     *
     * @param page 当前页码
     * @param pageSize 每页员工数量
     * @param name  搜索查询的关键字
     * @return 当前页的员工集合
     */
    Result<Page<Employee>> pageEmployee(Integer page, Integer pageSize, String name);

    /**
     * 禁用/解禁账号
     *
     * @param request  请求
     * @param employee 待修改的员工信息
     * @return 是否成功
     */
    Result<String> update(HttpServletRequest request, Employee employee);
}
